import myRequest from "./request";
import axios from "axios";
import { mockNewsData, mockWeatherData, simulateNetworkDelay } from "./mockData";
import { API_CONFIG, checkNetworkStatus } from "./config";

// 获取新闻
export async function getNews() {
  // 如果配置为使用模拟数据，直接返回模拟数据
  if (API_CONFIG.USE_MOCK) {
    console.log("使用模拟新闻数据");
    return simulateNetworkDelay(mockNewsData);
  }

  // 检查网络状态
  const isOnline = await checkNetworkStatus();
  if (!isOnline || !API_CONFIG.ENABLE_NETWORK) {
    console.log("网络不可用，使用模拟新闻数据");
    return simulateNetworkDelay(mockNewsData);
  }

  return myRequest
    .get({
      url: "/home/banner",
    })
    .catch((err) => {
      console.error("获取新闻失败，使用模拟数据:", err);
      // 网络失败时返回模拟数据
      return simulateNetworkDelay(mockNewsData);
    });
}

//获取天气
export async function getWeather() {
  // 如果配置为使用模拟数据，直接返回模拟数据
  if (API_CONFIG.USE_MOCK) {
    console.log("使用模拟天气数据");
    return simulateNetworkDelay(mockWeatherData);
  }

  // 检查网络状态
  const isOnline = await checkNetworkStatus();
  if (!isOnline || !API_CONFIG.ENABLE_NETWORK) {
    console.log("网络不可用，使用模拟天气数据");
    return simulateNetworkDelay(mockWeatherData);
  }

  // 使用代理路径
  return axios
    .get(API_CONFIG.WEATHER_API.endpoint1 + "?city=北京")
    .then((res) => {
      console.log("天气数据:", res.data);
      return res.data;
    })
    .catch((err) => {
      console.error("获取天气失败，使用模拟数据:", err);
      // 网络失败时返回模拟数据
      return simulateNetworkDelay(mockWeatherData);
    });
}
